package com.sws.device.service;


import com.sws.device.domain.DevDeviceDTO;

/**
 * 设备信息服务接口
 */
public interface DevDeviceWebSocketService {
    
    /**
     * 根据设备序列号查询设备信息
     *
     * @param sn 设备序列号
     * @return 设备信息
     */
    DevDeviceDTO getDeviceBySn(String sn);
    
    /**
     * 保存或更新设备信息
     *
     * @param device 设备信息
     * @return 是否成功
     */
    boolean saveOrUpdateDevice(DevDeviceDTO device);
    
    /**
     * 处理设备连接
     *
     * @param sn       设备序列号
     * @param ip       设备IP地址
     * @param ts       时间戳
     * @param token    生成的token
     * @param expire   token有效期
     * @param interval 心跳间隔
     * @return 处理后的设备信息
     */
    DevDeviceDTO handleDeviceConnect(String sn, String ip, Integer ts, String token, Integer expire, Integer interval);
    
    /**
     * 更新设备的Token信息
     *
     * @param sn     设备序列号
     * @param token  更新后的token
     * @param expire token有效期
     * @return 更新后的设备信息
     */
    DevDeviceDTO updateDeviceToken(String sn, String token, Integer expire);
    
    /**
     * 更新设备的心跳信息
     *
     * @param sn 设备序列号
     * @param ip 设备IP地址
     * @return 更新后的设备信息
     */
    DevDeviceDTO updateDeviceHeartbeat(String sn, String ip);
} 